<?php

//require_once "Mail.php";
//require_once('class.phpmailer.php');

if (!defined('DATABASE_NAME_MENU')) {
    define("DATABASE_NAME_MENU", "default");
}

class Menu_model extends CI_Model {

    var $id;
    var $nome;
    var $href;
    var $ordem;
    var $acesso;
    var $DBControle;

    function __construct($id = '', $nome = '', $href = '', $ordem = '', $acesso = '') {
        parent::__construct();

        $this->id = $id;
        $this->nome = $nome;
        $this->href = $href;
        $this->ordem = $ordem;
        $this->acesso = $acesso;
    }

    function id($id) {
        $this->DBControle = $this->load->database(DATABASE_NAME_MENU, TRUE);

        $this->DBControle->where('m0_id', $id);
        $query = $this->DBControle->get('Menu');
        $result = $query->result();

        if (count($result) > 0) {
            $nome = $result[0];

            $this->id = $nome->m0_id;
            $this->nome = $nome->m0_nome;
            $this->href = $nome->m0_href;
            $this->ordem = $nome->m0_ordem;
            $this->acesso = $nome->m0_acesso;

            return $this;
        } else {
            return false;
        }
    }

    function adicionar($nome, $href, $ordem, $acesso) {
        $this->DBControle = $this->load->database(DATABASE_NAME_MENU, TRUE);
        $insert["m0_nome"] = $nome;
        $insert["m0_href"] = $href;
        $insert["m0_ordem"] = $ordem;
        $insert["m0_acesso"] = $acesso;

        if ($nome != '' && $href != '' && $ordem != '') {
            $this->DBControle->insert('Menu', $insert);
            return $this->DBControle->insert_id();
        } else {
            return false;
        }
    }

    function editar($id, $nome = false, $href = false, $ordem = false, $acesso = false) {
        $this->DBControle = $this->load->database(DATABASE_NAME_MENU, TRUE);
        $update = array();

        if ($nome) {
            $update["m0_nome"] = $nome;
        }
        if ($href) {
            $update["m0_href"] = $href;
        }
        if ($ordem) {
            $update["m0_ordem"] = $ordem;
        }
        if ($acesso) {
            $update["m0_acesso"] = $acesso;
        }

        if (count($update) > 0) {
            $this->DBControle->where('m0_id', $id);
            $this->DBControle->update('Menu', $update);
        }
    }

    function remover() {
        $this->DBControle = $this->load->database(DATABASE_NAME_MENU, TRUE);
    }

    function listar() {
        $this->DBControle = $this->load->database(DATABASE_NAME_MENU, TRUE);
        $query3 = $this->DBControle->get('Menu');
        $result = $query3->result();
        $lista = array();
        foreach ($result as $key => $value) {
            $lista[] = new Menu_model($value->m0_id, $value->m0_nome, $value->m0_href, $value->m0_ordem, $value->m0_acesso);
        }

        return $lista;
    }

    function pagina($numerpdapagina, $resultadosporpagina = 15) {
        $this->DBControle = $this->load->database(DATABASE_NAME_MENU, TRUE);
        $query3 = $this->DBControle->get('Menu');
        $result = $query3->result();
        $lista = array();
        foreach ($result as $key => $value) {
            $lista[] = new Menu_model($value->m0_id, $value->m0_nome, $value->m0_href, $value->m0_ordem, $value->m0_acesso);
        }

        $listapagina = array_slice($lista, $numerpdapagina, $resultadosporpagina);

        $retorno = array();
        $retorno[0] = count($lista);
        $retorno[1] = $listapagina;

        return $retorno;
    }

    function permissoes($id) {
        $this->DBControle = $this->load->database(DATABASE_NAME_MENU, TRUE);

        $this->DBControle->from('Menu_permissao');
        $this->DBControle->join('Usuario', 'u0_id = m4_usuario');
        $this->DBControle->where('m4_menu', $id);
        $query3 = $this->DBControle->get();
        $result = $query3->result();
//        $lista = array();
//        foreach ($result as $key => $value) {
//            $lista[] = new Trabalhador_model($value->t0_id, $value->t0_nome, $value->t0_matricula);
//        }

        return $result;
    }

    function itens($id) {
        $this->DBControle = $this->load->database(DATABASE_NAME_MENU, TRUE);

        $this->DBControle->from('Menu');
        $this->DBControle->join('Menu_item', 'm0_id = m1_menu');
        $this->DBControle->where('m0_id', $id);
        $query3 = $this->DBControle->get();
        $result = $query3->result();
//        $lista = array();
//        foreach ($result as $key => $value) {
//            $lista[] = new Trabalhador_model($value->t0_id, $value->t0_nome, $value->t0_matricula);
//        }

        return $result;
    }

    function usuario($id) {
        $this->DBControle = $this->load->database(DATABASE_NAME_MENU, TRUE);

//        $CI->db->select('*');
//        $CI->db->from('Menu');
//        $CI->db->join('usuario_permissao', 'm1_id = u1_idmenu', 'left');
//        $CI->db->where('u1_idusuario', $idusuario);
//        $CI->db->or_where('m1_acesso', '1');
//        $CI->db->order_by('m1_ordem');
//        $query = $CI->db->get();


        $this->DBControle->from('Menu');
        $this->DBControle->join('Menu_permissao', 'm0_id = m4_menu', 'left');
        $this->DBControle->where('m4_usuario', $id);
        $this->DBControle->or_where('m0_acesso', '1');
        $this->DBControle->order_by('m0_ordem');
        $query3 = $this->DBControle->get();
        $result = $query3->result();

//        echo $this->DBControle->last_query();
//        $lista = array();
//        foreach ($result as $key => $value) {
//            $lista[] = new Trabalhador_model($value->t0_id, $value->t0_nome, $value->t0_matricula);
//        }

        return $result;
    }

}

?>
